package com.xdog.web3.domain.twitter;

import lombok.Data;
import java.util.List;

/**
 * 统一的Twitter数据实体类
 * 封装来自不同API的公共参数
 */
@Data
public class UnifiedTwitterData {
    
    /**
     * 推文列表
     */
    private List<Tweet> tweets;
    
    /**
     * 推荐用户列表
     */
    private List<User> users;
    
    /**
     * 数据来源API标识
     */
    private String sourceApi;
    
    /**
     * 数据获取时间
     */
    private Long fetchTime;
    
    /**
     * 推文信息
     */
    @Data
    public static class Tweet {
        /**
         * 推文ID
         */
        private String id;
        
        /**
         * 推文内容
         */
        private String text;
        
        /**
         * 发布时间
         */
        private String createdAt;
        
        /**
         * 点赞数
         */
        private Integer likeCount;
        
        /**
         * 转发数
         */
        private Integer retweetCount;
        
        /**
         * 回复数
         */
        private Integer replyCount;
        
        /**
         * 引用数
         */
        private Integer quoteCount;
        
        /**
         * 浏览量
         */
        private Integer viewCount;
        
        /**
         * 用户信息
         */
        private User user;
        
        /**
         * 推文链接
         */
        private String url;
    }
    
    /**
     * 用户信息
     */
    @Data
    public static class User {
        /**
         * 用户ID
         */
        private String id;
        
        /**
         * 用户名称
         */
        private String name;
        
        /**
         * 用户昵称
         */
        private String screenName;
        
        /**
         * 头像链接
         */
        private String profileImageUrl;
        
        /**
         * 关注数
         */
        private Integer followersCount;
        
        /**
         * 粉丝数
         */
        private Integer followingCount;
        
        /**
         * 推文数
         */
        private Integer tweetsCount;
        
        /**
         * 描述信息
         */
        private String description;
        
        /**
         * 是否认证用户
         */
        private Boolean verified;
    }
}